# Makefile.am
# Automake file for the EPAN library
# (Ethereal Protocol ANalyzer Library)
#
# $Id: Makefile.am 27790 2009-03-18 21:59:30Z gerald $
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 1998 Gerald Combs
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

include ../Makefile.am.inc

if HAVE_LIBLUA
wslua_lib = wslua/libwslua.la
wslua_dir = wslua
wslua_dist_dir =
else            # HAVE_LIBLUA
wslua_lib =
wslua_dir =
wslua_dist_dir = wslua
endif           # HAVE_LIBLUA


SUBDIRS = crc crypt ftypes dfilter dissectors $(wslua_dir)

DIST_SUBDIRS = $(SUBDIRS) $(wslua_dist_dir)

ACLOCAL_AMFLAGS = `../aclocal-flags`

noinst_LTLIBRARIES = libwireshark_generated.la libwireshark_asmopt.la
lib_LTLIBRARIES = libwireshark.la
libwireshark_la_LDFLAGS = -version-info 0:1:0 @LDFLAGS_SHAREDLIB@

include Makefile.common

INCLUDES = -I$(srcdir)/.. -I$(srcdir)/$(LEMON) @LUA_INCLUDES@ \
	$(LIBGNUTLS_CFLAGS) $(LIBGCRYPT_CFLAGS) $(LIBSMI_CFLAGS) \
	$(LIBGEOIP_CFLAGS)


if HAVE_WARNINGS_AS_ERRORS
AM_NON_GENERATED_CFLAGS = -Werror
endif

#Since code generated by lex may trigger gcc warnings, we are now generating two
#libraries.  A single library is generated with the lex code without the barrier
#"stop on warning". An other library is generated from the remaining source
#files with the "stop on warning" barrier.
libwireshark_la_SOURCES = \
	$(LIBWIRESHARK_SRC)	\
	$(LIBWIRESHARK_INCLUDES)
libwireshark_la_CFLAGS = $(AM_NON_GENERATED_CFLAGS)

libwireshark_generated_la_SOURCES = \
	$(LIBWIRESHARK_GENERATED_SRC) \
	$(LIBWIRESHARK_GENERATED_INCLUDES)

# code optionally implemented in assembler
# only C source available for platforms other than Win32
libwireshark_asmopt_la_SOURCES = \
	asm_utils.c		\
	asm_utils.h		\
	asm_utils_win32_x86.asm

EXTRA_libwireshark_la_SOURCES =	\
	inet_aton.c		\
	inet_aton.h

EXTRA_DIST = \
	diam_dict.l		\
	dtd_grammar.lemon 	\
	dtd_parse.l 		\
	dtd_parse.h 		\
	dtd_preparse.l 		\
	enterprise-numbers  	\
	libwireshark.def	\
	Makefile.common		\
	Makefile.nmake		\
	make-sminmpec.pl 	\
	radius_dict.l   	\
	tvbtest.c		\
	reassemble_test.c 	\
	uat_load.l		\
	exntest.c		\
	doxygen.cfg.in

CLEANFILES = \
	libwireshark.a			\
	libwireshark.la			\
	libwireshark_generated.a 	\
	libwireshark_generated.la 	\
	libwireshark_asmopt.a 		\
	libwireshark_asmopt.la 		\
	inet_ntop.c			\
	inet_pton.c			\
	*~

DISTCLEANFILES = \
	$(LIBWIRESHARK_DISTCLEAN_GENERATED_SRC) \
	$(LIBWIRESHARK_DISTCLEAN_GENERATED_INCLUDES) \
	dtd_grammar.out

MAINTAINERCLEANFILES = \
	$(LIBWIRESHARK_NODISTCLEAN_GENERATED_SRC) \
	$(LIBWIRESHARK_NODISTCLEAN_GENERATED_INCLUDES) \
	Makefile.in		\
	sminmpec.c

#
# Add the object files for missing routines, if any.
#
libwireshark_la_LIBADD = \
	@INET_ATON_LO@ @INET_PTON_LO@ @INET_NTOP_LO@ libwireshark_generated.la \
	libwireshark_asmopt.la crc/libcrc.la crypt/libairpdcap.la \
	ftypes/libftypes.la dfilter/libdfilter.la dissectors/libdissectors.la \
	dissectors/libdirtydissectors.la $(wslua_lib) @SOCKET_LIBS@ @NSL_LIBS@ \
	@C_ARES_LIBS@ @ADNS_LIBS@ @LIBGCRYPT_LIBS@ @LIBGNUTLS_LIBS@ \
	@KRB5_LIBS@ @SSL_LIBS@ @LIBSMI_LDFLAGS@ @GEOIP_LIBS@ \
	${top_builddir}/wsutil/libwsutil.la -lm

libwireshark_la_DEPENDENCIES = \
	@INET_ATON_LO@ @INET_PTON_LO@ @INET_NTOP_LO@ libwireshark_generated.la \
	libwireshark_asmopt.la crc/libcrc.la crypt/libairpdcap.la \
	ftypes/libftypes.la dfilter/libdfilter.la dissectors/libdissectors.la \
	dissectors/libdirtydissectors.la $(wslua_lib) \
	${top_builddir}/wsutil/libwsutil.la

#EXTRA_PROGRAMS = reassemble_test
#reassemble_test_LDADD = $(GLIB_LIBS)

reassemble_test: reassemble_test.o tvbuff.o except.o strutil.o emem.o \
                 reassemble.o
	$(LINK) $^ $(GLIB_LIBS) -lz

tvbtest: tvbtest.o tvbuff.o except.o strutil.o emem.o
	$(LINK) $^ $(GLIB_LIBS) -lz

exntest: exntest.o except.o
	$(LINK) $^ $(GLIB_LIBS)

RUNLEX=$(top_srcdir)/tools/runlex.sh

diam_dict_lex.h: diam_dict.c

dtd_parse_lex.h: dtd_parse.c

dtd_preparse_lex.h: dtd_preparse.c

radius_dict_lex.h: radius_dict.c

uat_load_lex.h: uat_load.c

LEMON=../tools/lemon

dtd_grammar.h: dtd_grammar.c

dtd_grammar.c: $(LEMON)/lemon$(EXEEXT) $(srcdir)/$(LEMON)/lempar.c $(srcdir)/dtd_grammar.lemon
	$(LEMON)/lemon$(EXEEXT) t=$(srcdir)/$(LEMON)/lempar.c $(srcdir)/dtd_grammar.lemon

tvbtest.o exntest.o: exceptions.h

sminmpec.c: enterprise-numbers make-sminmpec.pl
	$(PERL) $(srcdir)/make-sminmpec.pl $(srcdir)/enterprise-numbers sminmpec.c

inet_ntop.c:
	ln -s $(srcdir)/../inet_ntop.c .

inet_pton.c:
	ln -s $(srcdir)/../inet_pton.c .

if HAVE_PLUGINS

if ENABLE_STATIC
-include ../plugins/Custom.make
plugin_src = \
	../plugins/asn1/packet-asn1.c \
	../plugins/docsis/packet-bpkmattr.c \
	../plugins/docsis/packet-bpkmreq.c \
	../plugins/docsis/packet-bpkmrsp.c \
	../plugins/docsis/packet-docsis.c \
	../plugins/docsis/packet-dsaack.c \
	../plugins/docsis/packet-dsareq.c \
	../plugins/docsis/packet-dsarsp.c \
	../plugins/docsis/packet-dscack.c \
	../plugins/docsis/packet-dscreq.c \
	../plugins/docsis/packet-dscrsp.c \
	../plugins/docsis/packet-dsdreq.c \
	../plugins/docsis/packet-dsdrsp.c \
	../plugins/docsis/packet-intrngreq.c \
	../plugins/docsis/packet-macmgmt.c \
	../plugins/docsis/packet-map.c \
	../plugins/docsis/packet-regack.c \
	../plugins/docsis/packet-regreq.c \
	../plugins/docsis/packet-regrsp.c \
	../plugins/docsis/packet-rngreq.c \
	../plugins/docsis/packet-rngrsp.c \
	../plugins/docsis/packet-tlv.c \
	../plugins/docsis/packet-type29ucd.c \
	../plugins/docsis/packet-uccreq.c \
	../plugins/docsis/packet-uccrsp.c \
	../plugins/docsis/packet-ucd.c \
	../plugins/giop/packet-cosnaming.c \
	../plugins/giop/packet-coseventcomm.c \
	../plugins/gryphon/packet-gryphon.c \
	../plugins/irda/packet-irda.c \
	../plugins/m2m/packet-m2m.c \
	../plugins/m2m/wimax_tlv.c \
	../plugins/mgcp/packet-mgcp.c \
	../plugins/rdm/packet-rdm.c \
	../plugins/sercosiii/packet-sercosiii_1v1_at.c \
	../plugins/sercosiii/packet-sercosiii_1v1_at_devstat.c \
	../plugins/sercosiii/packet-sercosiii_1v1.c \
	../plugins/sercosiii/packet-sercosiii_1v1_hp.c \
	../plugins/sercosiii/packet-sercosiii_1v1_mdt.c \
	../plugins/sercosiii/packet-sercosiii_1v1_mdt_devctrl.c \
	../plugins/sercosiii/packet-sercosiii_1v1_mst.c \
	../plugins/sercosiii/packet-sercosiii_1v1_svc.c \
        ../plugins/wimax/crc.c \
        ../plugins/wimax/crc_data.c \
        ../plugins/wimax/mac_hd_generic_decoder.c \
        ../plugins/wimax/mac_hd_type1_decoder.c \
        ../plugins/wimax/mac_hd_type2_decoder.c \
        ../plugins/wimax/mac_mgmt_msg_decoder.c \
        ../plugins/wimax/msg_aas_beam.c \
        ../plugins/wimax/msg_aas_fbck.c \
        ../plugins/wimax/msg_arq.c \
        ../plugins/wimax/msg_clk_cmp.c \
        ../plugins/wimax/msg_dcd.c \
        ../plugins/wimax/msg_dlmap.c \
        ../plugins/wimax/msg_dreg.c \
        ../plugins/wimax/msg_dsa.c \
        ../plugins/wimax/msg_dsc.c \
        ../plugins/wimax/msg_dsd.c \
        ../plugins/wimax/msg_dsx_rvd.c \
        ../plugins/wimax/msg_fpc.c \
        ../plugins/wimax/msg_pkm.c \
        ../plugins/wimax/msg_pmc.c \
        ../plugins/wimax/msg_prc_lt_ctrl.c \
        ../plugins/wimax/msg_reg_req.c \
        ../plugins/wimax/msg_reg_rsp.c \
        ../plugins/wimax/msg_rep.c \
        ../plugins/wimax/msg_res_cmd.c \
        ../plugins/wimax/msg_rng_req.c \
        ../plugins/wimax/msg_rng_rsp.c \
        ../plugins/wimax/msg_sbc.c \
        ../plugins/wimax/msg_ucd.c \
        ../plugins/wimax/msg_ulmap.c \
        ../plugins/wimax/packet-wmx.c \
        ../plugins/wimax/wimax_cdma_code_decoder.c \
        ../plugins/wimax/wimax_compact_dlmap_ie_decoder.c \
        ../plugins/wimax/wimax_compact_ulmap_ie_decoder.c \
        ../plugins/wimax/wimax_fch_decoder.c \
        ../plugins/wimax/wimax_ffb_decoder.c \
        ../plugins/wimax/wimax_hack_decoder.c \
        ../plugins/wimax/wimax_harq_map_decoder.c \
        ../plugins/wimax/wimax_pdu_decoder.c \
        ../plugins/wimax/wimax_phy_attributes_decoder.c \
        ../plugins/wimax/wimax_tlv.c \
        ../plugins/wimax/wimax_utils.c


else		# ENABLE_STATIC

plugin_src =

endif		# ENABLE_STATIC

else		# HAVE_PLUGINS
plugin_src =

endif		# HAVE_PLUGINS

doxygen:
if HAVE_DOXYGEN
	$(DOXYGEN) doxygen.cfg
endif		# HAVE_DOXYGEN

checkapi:
	$(PERL) ../tools/checkAPIs.pl -g termoutput $(LIBWIRESHARK_SRC)
